/*
 * Copyright 2014 Graham Smith
 */
package uk.co.wobblycogs.vegas.riff;

import java.util.Arrays;

/**
 *
 * @author Graham Smith
 */
public enum RIFFType {

	RIFF(new byte[]{(byte) 0x72, (byte) 0x69, (byte) 0x66, (byte) 0x66, (byte) 0x2E, (byte) 0x91, (byte) 0xCF, (byte) 0x11, (byte) 0xA5, (byte) 0xD6, (byte) 0x28, (byte) 0xDB, (byte) 0x04, (byte) 0xC1, (byte) 0x00, (byte) 0x00}),
	LIST(new byte[]{(byte) 0x6C, (byte) 0x69, (byte) 0x73, (byte) 0x74, (byte) 0x2F, (byte) 0x91, (byte) 0xCF, (byte) 0x11, (byte) 0xA5, (byte) 0xD6, (byte) 0x28, (byte) 0xDB, (byte) 0x04, (byte) 0xC1, (byte) 0x00, (byte) 0x00}),
	HEADER(new byte[]{(byte) 0x5A, (byte) 0x2D, (byte) 0x8F, (byte) 0xB2, (byte) 0x0F, (byte) 0x23, (byte) 0xD2, (byte) 0x11, (byte) 0x86, (byte) 0xAF, (byte) 0x00, (byte) 0xC0, (byte) 0x4F, (byte) 0x8E, (byte) 0xDB, (byte) 0x8A}),
	RESOURCE(new byte[]{(byte) 0x5D, (byte) 0x2D, (byte) 0x8F, (byte) 0xB2, (byte) 0x0F, (byte) 0x23, (byte) 0xD2, (byte) 0x11, (byte) 0x86, (byte) 0xAF, (byte) 0x00, (byte) 0xC0, (byte) 0x4F, (byte) 0x8E, (byte) 0xDB, (byte) 0x8A}),
	CHUNK(new byte[]{(byte) 0x00});

	private final byte[] typeSignature;

	private RIFFType(byte[] type) {
		this.typeSignature = type;
	}

	public byte[] getTypeSignature() {
		return typeSignature;
	}

	public static RIFFType getRIFFType(byte[] type) {
		for (RIFFType r : RIFFType.values()) {
			if (Arrays.equals(r.getTypeSignature(), type)) {
				return r;
			}
		}
		return CHUNK;
	}

}
